home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 25 / Cream of the Crop 25.iso / doom / quake_ad.zip / HIPQW.ZIP / SRC / HIP_PUSH.QC < prev    next >
Text File  |  1997-01-16  |  2KB  |  112 lines

  1. /* Pushable walls QuickC program
  2.    By Jim Dose'  9/16/96
  3.    Copyright (c)1996 Hipnotic Interactive, Inc.
  4.    All rights reserved.
  5.    Do not distribute.
  6. */
  7.  
  8. void() push_use =
  9.     {
  10.     local vector delta;
  11.     local float x;
  12.     local float y;
  13.  
  14. //    walkmove (other.angles_y, 16 * frametime);
  15. /*
  16.     if ( (other.angles_y >= 315) || (other.angles_y < 45))
  17.         {
  18.         walkmove ( 0, 16 * frametime);
  19.         }
  20.     else if ( (other.angles_y >= 45) && (other.angles_y < 135))
  21.         {
  22.         walkmove ( 90, 16 * frametime);
  23.         }
  24.     else if ( (other.angles_y >= 135) && (other.angles_y < 225))
  25.         {
  26.         walkmove ( 180, 16 * frametime);
  27.         }
  28.     else if ( (other.angles_y >= 225) && (other.angles_y < 315))
  29.         {
  30.         walkmove ( 270, 16 * frametime);
  31.         }
  32.     else
  33.         {
  34.         return;
  35.         }
  36. */
  37.     makevectors(other.angles);
  38.     
  39. //    x = fabs( v_forward_x );
  40. //    y = fabs( v_forward_y );
  41.     x = fabs( other.velocity_x );
  42.     y = fabs( other.velocity_y );
  43.     dprint( ftos( x ) );
  44.     dprint( ", " );
  45.     dprint( ftos( y ) );
  46.     if ( x > y )
  47.         {
  48.         dprint( " x move\n\n\n\n" );
  49.         if ( other.velocity_x > 0 )
  50.             {
  51.             walkmove ( 0, 16 * frametime);
  52.             }
  53.         else
  54.             {
  55.             walkmove( 180, 16 * frametime );
  56.             }
  57.         }
  58.     else
  59.         {
  60.         dprint( " y move\n\n\n\n" );
  61.         if ( other.velocity_y > 0 )
  62.             {
  63.             walkmove ( 90, 16 * frametime);
  64.             }
  65.         else
  66.             {
  67.             walkmove( 270, 16 * frametime );
  68.             }
  69.         }
  70.     
  71.     delta = self.origin - self.oldorigin;
  72.     setorigin (self.owner, self.owner.oldorigin + delta );
  73.     };
  74.  
  75. /*QUAKED func_pushable (0 .5 .8) ?
  76. Pushable walls.
  77. */
  78.  
  79. void() func_pushable =
  80.     {
  81.     local entity new;
  82.     local vector newsize;
  83.  
  84.     self.mangle = self.angles;
  85.     self.angles = '0 0 0';
  86.  
  87.     self.classname = "pushablewall";
  88.     self.solid = SOLID_BSP;
  89.     self.movetype = MOVETYPE_PUSH;
  90.     setmodel (self, self.model);
  91.     setorigin( self, self.origin );
  92.     setsize (self, self.mins, self.maxs );
  93.     self.oldorigin = self.origin;
  94.  
  95.     new = spawn();
  96.     new.owner = self;
  97.     new.mangle = self.mangle;
  98.     new.angles = self.angles;
  99.  
  100.     new.classname = "pushablewallproxy";
  101.     new.solid = SOLID_BBOX;
  102.     new.movetype = MOVETYPE_STEP;
  103.     new.origin = ( self.mins + self.maxs ) * 0.5 + '0 0 1';
  104.     newsize = ( self.maxs - self.mins ) * 0.5;
  105.    new.mins = '-1 -1 0' - newsize;
  106.    new.maxs = '1 1 -2' + newsize;
  107.     setsize( new, new.mins, new.maxs );
  108.     setorigin( new, new.origin );
  109.     new.oldorigin = new.origin;
  110.      new.touch = push_use;
  111.    };
  112.